perm filename IOMODX.SAI[AL,HE] blob sn#290116 filedate 1977-06-28 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	ENTRY OPEN_FILE,REQSTR,ASK,REQINT
C00007 ENDMK
C⊗;
ENTRY OPEN_FILE,REQSTR,ASK,REQINT;

BEGIN "IOMODX"

REQUIRE "ABBREV.SAI[AL,HE]" SOURCE_FILE;
REQUIRE "IOMODX.HDR[AL,HE]" SOURCE_FILE;

INTERNAL STRING SIMPLE PROCEDURE REQSTR(STRING REQ);
	BEGIN
	OUTSTR(REQ);
	RETURN(INCHWL);
	END;

INTERNAL BOOLEAN SIMPLE PROCEDURE ASK(STRING S);
	BEGIN
	OUTSTR(S);OUTSTR("? ");
	RETURN((INCHWL LAND '137)="Y"); COMMENT turn off '40 bit;
	END;

INTERNAL INTEGER SIMPLE PROCEDURE REQINT(STRING S);RETURN(CVD(REQSTR(S)));

INTERNAL PROCEDURE OPEN_FILE(REFERENCE INTEGER CH;VALUE STRING FIDREQ;
		INTEGER  M,IB,OB;REFERENCE INTEGER EOFF);
	BEGIN
	INTEGER BRKR;
	INTEGER SCCT;
	SCCT←1000;
	OPEN(CH←GETCHAN,"DSK",M,IB,OB,SCCT,BRKR,EOFF);
	IF IB > 0 THEN
		BEGIN
		LOOKUP(CH,FIDREQ,EOFF);
		WHILE EOFF DO LOOKUP(CH,
			REQSTR("LOOKUP FAILED FOR  "&FIDREQ&"  FILE ="),EOFF);
		END;
	IF OB>0 THEN 
		BEGIN
		ENTER(CH,FIDREQ,EOFF);
		WHILE EOFF DO ENTER(CH,
			REQSTR("ENTER FAILED FOR "&FIDREQ&"   FILE ="),EOFF);
		END;
	END;

INTERNAL INTEGER SIMPLE PROCEDURE IS_OPEN(INTEGER CH);
	START_CODE
	EXTERNAL INTEGER CDBLOC,GOGTAB;
	LABEL XIT;
	DEFINE USER "<>"=<'15>;
	MOVE	USER,GOGTAB;
	HRRZ	1,CDBLOC(USER);
	JUMPE	1,XIT;
	ADD	1,CH;
	MOVE	1,(1);
XIT:	END;

INTERNAL SIMPLE PROCEDURE INI_OUTPUT;
	IF ASK("Output to tty") THEN 
		IF ASK("Output to a file") THEN SETPRINT(NULL,"B")
					    ELSE SETPRINT(NULL,"T")
	   ELSE IF ASK("Output to a file") THEN SETPRINT(NULL,"F")
					    ELSE SETPRINT(NULL,"N");

END "IOMODX"